package cn.itcast.nems.journal.dto;

import cn.itcast.nems.common.QueryParam;
import cn.itcast.nems.studentrecord.dao.condition.ApprovalType;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDate;

@Data
public class JournalFinalModel implements QueryParam, Serializable {
    /**
     * 凭单ID
     */
    private String id ;
    /**
     * MY_COMMIT:我提交的、WAIT_APPROVAL:待我审核的、ALL：全部
     */
    private ApprovalType approvalType ;
    /**
     * 状态;枚举值：草稿｜DRAFT、待审批｜PENDING、审批中｜APPROVING、审批未通过｜REJECTED、已完成｜FINISHED
     */
    private String state;
    /**
     * 结课目标班级ID
     */
    private Integer clazzId;
    /**
     * 结课目标班级名称
     */
    private String clazzName;
    /**
     * 学科ID;结课目标班级所属
     */
    private String subjectId;

    /**
     * 学科名称;结课目标班级所属
     */
    private String subjectName;

    /**
     * 校区ID;结课目标班级所属
     */
    private String campusId;
    /**
     * 多个校区ID ;结课目标班级所属
     */
    private String campusIds;

    /**
     * 校区名称;结课目标班级所属
     */
    private String campusName;

    /**
     * 授课模式ID;结课目标班级所属
     */
    private String modelId;

    /**
     * 授课模式名称;结课目标班级所属
     */
    private String modelName;


    /**
     * 创建时间-开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @JsonSerialize(using = LocalDateSerializer.class)
    @JsonDeserialize(using = LocalDateDeserializer.class)
    private LocalDate createdStartTime ;
    /**
     * 创建时间-结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @JsonSerialize(using = LocalDateSerializer.class)
    @JsonDeserialize(using = LocalDateDeserializer.class)
    private LocalDate createdEndTime ;

    /**
     * 创建人邮箱
     */
    private String createdBy  ;
}
